#ifndef __pid_H__
#define __pid_H__
#include "stdint.h"


typedef struct{
    float Kp,Ki,Kd;             // PID参数
    int16_t Target;               // 目标值
    int16_t Actual1;               // 原始实际值
	int16_t Actual2; 
    int16_t Actual_Filtered;      // 低通滤波后的实际值
    int16_t Out;                  // 控制器输出
    int16_t Preverror;            // 上一次误差
    int16_t Currerror;            // 当前误差
    int16_t ErrorInt;             // 误差积分
    int16_t OUT_MAX,OUT_MIN;      // 输出限幅
    float a;                    // 低通滤波系数 (0 < a < 1)
}PID_t;
void PID_Updata(PID_t* P);
int PID_Steering(int16_t expect, float angle, float gyro);
#endif

